﻿using Common.Contract.Authentication.Record;
using Common.Contract.SystemConfig.Record;
using SalePerformance.Model.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SalePerformance.Model.Interface
{
    public interface ISalePerformanceProvider
    {
        List<TblSpDepositEop> RetrieveDepositByDao(string dao);
        List<TblSpLoanEop> RetrieveLoanProductByDao(string dao);
        List<TblSpLoanEop> RetrieveLoanProductProgramByDao(string dao);
        List<TblSpLoanEop> RetrieveLoanPromoProgramByDao(string dao);
        List<TblSpCashManagementEop> RetrieveCashManagementByDao(string dao);
        List<TblSpTradeEop> RetrieveTradeByDao(string dao);
        List<TblSalePerformanceKpi> RetrieveSaleKpiByDao(string dao);
        List<TblSalePerformanceKpi> RetrieveSaleKpiByRegion(UserRecord dao);
        List<TblKpiMsboRaw> RetrieveKpiMsboRawByDao(out int totalRecord, UserRecord dao, FilterRecord textSearch = null, int pagesize = 0, int pageindex = 0);
        TblKpiRankBranch RetrieveKpiRankBranchByBranch(UserRecord dao, string branch);
        string RetrieveSaleContestRankingBranchRegionGroup(UserRecord dao, int saleContestId);
        string RetrieveSaleContestRankingRegionRegionGroup(UserRecord dao, int saleContestId);
        List<TblSaleContestBilawardRankingDaily> RetrieveSaleContestRankingMSBOByDao(int saleContestId);
        List<TblSaleContestBilawardRankingDaily> RetrieveSaleContestRankingBranchByDao(int saleContestId);
        List<TblSaleContestBilawardRankingDaily> RetrieveSaleContestRankingRegionByDao(int saleContestId);
        List<TblKpiRawDnbqDaily> RetrieveRawDataDNBQByDao(out int totalRecord, string dao, FilterRecord textSearch = null, string lang = null, int pagesize = 0, int pageindex = 0, DateTime? fromDate = null, string type = null);
        List<TblKpiRawDnbqDaily> RetrieveRawDataHDBQByDao(out int totalRecord, string dao, FilterRecord textSearch = null, string lang = null, int pagesize = 0, int pageindex = 0, DateTime? fromDate = null, string type = null);
        List<TblKpiRawDnbqDaily> RetrieveRawDataDNTCBQByDao(out int totalRecord, string dao, FilterRecord textSearch = null, string lang = null, int pagesize = 0, int pageindex = 0, DateTime? fromDate = null, string type = null);
        List<TblKpiRawDnbqDaily> RetrieveRawDataBadbankByDao(out int totalRecord, string dao, FilterRecord textSearch = null, string lang = null, int pagesize = 0, int pageindex = 0, DateTime? fromDate = null, string type = null);
        List<TblKpiRawCardDaily> RetrieveRawDataCardByDao(out int totalRecord, string dao, FilterRecord textSearch = null, string lang = null, int pagesize = 0, int pageindex = 0, DateTime? fromDate = null, string type = null);
        List<TblSaleContestBilAwardRaw> RetrieveRawDataSaleContestBilAwardByDao(out int totalRecord, string dao, FilterRecord textSearch = null, string lang = null, int pagesize = 0, int pageindex = 0, DateTime? fromDate = null, string type = null);
        List<TblKpiRawKhhdDaily> RetrieveRawDataKHHDByDao(out int totalRecord, string dao, FilterRecord textSearch = null, string lang = null, int pagesize = 0, int pageindex = 0, DateTime? fromDate = null, string type = null);
    }
}
